home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / network / daemons / nfs / nfs-serv.2be / nfs-serv / nfs-server-2.2beta16 / rquota_xdr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-01-06  |  2.3 KB  |  89 lines

  1. /*
  2.  * rquota_xdr.c        XDR support for rpc.quotad.
  3.  *
  4.  * Generated by rpcgen and edited manually.
  5.  */
  6.  
  7. #include "rquotad.h"
  8.  
  9. bool_t
  10. xdr_getquota_args(XDR *xdrs, getquota_args *objp)
  11. {
  12.     return xdr_string(xdrs, &objp->gqa_pathp, RQ_PATHLEN) &&
  13.            xdr_int(xdrs, &objp->gqa_uid);
  14. }
  15.  
  16. bool_t
  17. xdr_rquota(XDR *xdrs, rquota *objp)
  18. {
  19.     unsigned long    *buf = NULL;
  20.  
  21.     if (xdrs->x_op == XDR_ENCODE || xdrs->x_op == XDR_DECODE)
  22.         buf = XDR_INLINE(xdrs,10 * BYTES_PER_XDR_UNIT);
  23.  
  24.     if (buf == NULL) {
  25.         return xdr_int(xdrs, &objp->rq_bsize) &&
  26.                xdr_bool(xdrs, &objp->rq_active) &&
  27.                xdr_u_int(xdrs, &objp->rq_bhardlimit) &&
  28.                xdr_u_int(xdrs, &objp->rq_bsoftlimit) &&
  29.                xdr_u_int(xdrs, &objp->rq_curblocks) &&
  30.                xdr_u_int(xdrs, &objp->rq_fhardlimit) &&
  31.                xdr_u_int(xdrs, &objp->rq_fsoftlimit) &&
  32.                xdr_u_int(xdrs, &objp->rq_curfiles) &&
  33.                xdr_u_int(xdrs, &objp->rq_btimeleft) &&
  34.                xdr_u_int(xdrs, &objp->rq_ftimeleft);
  35.     }
  36.  
  37.     if (xdrs->x_op == XDR_ENCODE) {
  38.         IXDR_PUT_LONG(buf,objp->rq_bsize);
  39.         IXDR_PUT_BOOL(buf,objp->rq_active);
  40.         IXDR_PUT_U_LONG(buf,objp->rq_bhardlimit);
  41.         IXDR_PUT_U_LONG(buf,objp->rq_bsoftlimit);
  42.         IXDR_PUT_U_LONG(buf,objp->rq_curblocks);
  43.         IXDR_PUT_U_LONG(buf,objp->rq_fhardlimit);
  44.         IXDR_PUT_U_LONG(buf,objp->rq_fsoftlimit);
  45.         IXDR_PUT_U_LONG(buf,objp->rq_curfiles);
  46.         IXDR_PUT_U_LONG(buf,objp->rq_btimeleft);
  47.         IXDR_PUT_U_LONG(buf,objp->rq_ftimeleft);
  48.     } else if (xdrs->x_op == XDR_DECODE) {
  49.         objp->rq_bsize = IXDR_GET_LONG(buf);
  50.         objp->rq_active = IXDR_GET_BOOL(buf);
  51.         objp->rq_bhardlimit = IXDR_GET_U_LONG(buf);
  52.         objp->rq_bsoftlimit = IXDR_GET_U_LONG(buf);
  53.         objp->rq_curblocks = IXDR_GET_U_LONG(buf);
  54.         objp->rq_fhardlimit = IXDR_GET_U_LONG(buf);
  55.         objp->rq_fsoftlimit = IXDR_GET_U_LONG(buf);
  56.         objp->rq_curfiles = IXDR_GET_U_LONG(buf);
  57.         objp->rq_btimeleft = IXDR_GET_U_LONG(buf);
  58.         objp->rq_ftimeleft = IXDR_GET_U_LONG(buf);
  59.     }
  60.  
  61.     return(TRUE);
  62. }
  63.  
  64. bool_t
  65. xdr_gqr_status(XDR *xdrs, gqr_status *objp)
  66. {
  67.     return xdr_enum(xdrs, (enum_t *) objp);
  68. }
  69.  
  70. bool_t
  71. xdr_getquota_rslt(XDR *xdrs, getquota_rslt *objp)
  72. {
  73.     if (!xdr_gqr_status(xdrs, &objp->status)) {
  74.          return (FALSE);
  75.     }
  76.     switch (objp->status) {
  77.     case Q_OK:
  78.         if (!xdr_rquota(xdrs, &objp->getquota_rslt_u.gqr_rquota))
  79.             return (FALSE);
  80.         break;
  81.     case Q_NOQUOTA:
  82.     case Q_EPERM:
  83.         break;
  84.     default:
  85.         return (FALSE);
  86.     }
  87.     return (TRUE);
  88. }
  89.